
#include <Windows.h>
#include <comdef.h>
#include <cuda_runtime_api.h>
#include <cuda_d3d9_interop.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace System;

namespace GRIP
{
	namespace Cuda
	{
		public ref class Logger abstract sealed
		{
		public:
			static void CheckCudaErrors(cudaError err, const char *file, const int line);
			static void CheckCudaErrors(CUresult err, const char *file, const int line);
			static void CheckCudaErrors(int err, const char *file, const int line);
			static void CheckDirectXErrors(HRESULT result, String^ message, const char *file, const int line);
			static void WriteExceptionDetails(Exception^ ex);
			static void Log(String^ message);
		};
	}
}